Computing devices often cache data in a caching mechanism to facilitate fast, efficient access to the data. For example, a computing device may attempt to access data stored within a mass storage device (such as a hard disk drive) that is unable to facilitate access to the data as quickly or efficiently as a caching mechanism. In this example, the computing device may copy the data from the mass storage device to a caching mechanism (such as a solid-state drive caching system) in order to increase the speed at which the data may be accessed.
However, since caching mechanisms generally provide less storage capacity than mass storage devices, a caching mechanism may be unable to store all of the same data stored within a mass storage device. As a result, in order to gain certain speed and efficiency advantages from the caching mechanism, a computing device may need to copy only the most frequently accessed data from the mass storage device to the caching mechanism. By caching only the most frequently accessed data, the computing device may enable the most frequently accessed data to be accessed in a fast, efficient manner.
In at least one traditional technique, a computing device may identify the data most frequently accessed in a mass storage device by tracking the number of times that each block of data stored within the mass storage device is accessed. For example, a computing device may maintain one or more data structures that store statistics (e.g., read-write statistics) for each block of data stored within a mass storage device. Unfortunately, such data structures may become very large and cumbersome, potentially leading to slower processing times and decreased availability of computing resources. What is needed, therefore, is a more efficient mechanism for identifying and caching blocks of data that are frequently accessed by computing devices.